<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<%@ include file="../../common/jsp/sheetHeader.jsp" %>
<script>
	$(document).ready(function() {
		//sheet 초기화  
		createIBSheet2(document.getElementById("viewArea"),"mySheet","100%","400px");
		
		var cfg = {SearchMode:smLazyLoad,Page:30,FrozenCol:3};
		
		var headers = [ {Text:"NO|상태|삭제|문자열|콤보|콤보에디트|팝업|팝업에디트|자동합계|자동평균|정수|실수|날짜|패스워드|체크박스|라디오|이미지", Align:"Center"} ];
		var info = {Sort:1,ColMove:1,ColResize:1,HeaderCheck:0};
		var cols = [
			{Type:"Seq", Align:"Right"},
			{Type:"Status", Align:"Center"},
			{Type:"DelCheck"},
			{Type:"Text",SaveName:"Text",KeyField:1	},
			{Type:"Combo",SaveName:"Combo", Width:80, ComboText:"대기|진행중|완료", ComboCode:"01|02|03"},
			{Type:"ComboEdit", Width:80, ComboText:"고려대학교|국민대학교|서울대학교|서강대학교|서울산업대학교|서울시립대학교|상명대학교|숙명여자대학교|연세대학교|울산대학교|울산과학기술대학교|이화여자대학교|인천대학교|인천가톨릭대학교"},
			{Type:"Popup", Width:100},
			{Type:"PopupEdit", Width:100},
			{Type:"AutoSum", Align:"Right",Width:70,Format:"NullInteger"},
			{Type:"AutoAvg", Align:"Right",Width:70, Format:"NullFloat"},
			{Type:"Int", Align:"Right", Format:"NullInteger",Width:70},
			{Type:"Float", Align:"Right", Format:"NullFloat",Width:70},
			{Type:"Date", Align:"Center", Format:"Ymd", Width:100},
			{Type:"Pass"},
			{Type:"CheckBox"},
			{Type:"Radio"}
		];
		
		mySheet.SetConfig(cfg);
		mySheet.InitHeaders(headers,info);
		mySheet.InitColumns(cols);

		mySheet.FitColWidth();
		
		doAction('search');
	});
	
	/*Sheet 각종 처리*/
	function doAction(sAction) {
		switch(sAction) {
			case "search":		//조회
				mySheet.DoSearch("../data/sheet_data.xml");
				break;
			case "save":
				mySheet.DoSave("save.jsp");
				break;
		}
	}
	
	function mySheet_OnMouseDown(Button, Shift, X, Y) {
		$('#colIdx').val(mySheet.MouseCol());
	}
	
	function checkValueDup() {
		var col = $('#colIdx').val();
		var row = mySheet.ColValueDup(col);
		$('#dupRow').val(row);
		
		var rows = mySheet.ColValueDupRows(col);
		$('#dupRows').val(rows);
	}
	
	function mySheet_OnSearchEnd(Code, Msg, StCode, StMsg) {
		mySheet.FitColWidth();
	}
	
</script>
<title>중복된 데이터 검출 예제</title>
</head>
<body>
<div id="main">
	<%@ include file="../../common/jsp/sheetNavi.jsp" %>	
	<div id="title">중복된 데이터 검출 예제</div>
	<div id="desc">
		ColValueDup 메서드는 특정 컬럼 내에 중복된 값이 존재하는지 여부를 확인한다.<br>
		중복된 값이 존재하는 경우 두 번째 중복된 값의 Row Index를 반환한다.<br>
		컬럼을 하나만 사용할 수도 있고, 여러 개를 사용할 경우 "|" 문자로 조합하여 설정하면, 여러 컬럼의 값이 모두 같은 경우 해당 행의 Index를 반환한다.<br>
		IncludeDelRow 인자가 1인 경우 트랜잭션 상태가 삭제인 행을 포함하여 중복행을 체크하고, IncludeDelRow인자가 0인 경우 트랜잭션 상태가 삭제인 행을 제외하고 중복행을 체크한다.<br>
		중복된 값이 존재하지 않는 경우 –1을 반환한다.<br>
		<br>
		ColValueDupRows 메서드는 중복된 모든 행을 ","로 조합하여 문자열로 반환 한다.<br>
		ColValueDup 메소드는 처음으로 중복된 행의 Index만 확인할수 있지만 이 속성은 중복이 시작된행과 모든 중복된 행번호를 확인할 수 있는 기능이다.<br>
		예를 들어 Sheet에 다음과 같이 "기간구분"과 "콘도종류" 2개의 컬럼으로 구성되어 있는 구조라고 할때, ColValueDup=4이다. 1행으로 검사 후 첫 발견된 데이터이므로 결과는 4행이다. 동일한 조건에서 이 속성의 결과는 "3,4,7,8" 이다.<br>
	</div>

	<div id="functionArea">
		<div>
			<span>
			선택된 열 :
			<input id="colIdx" size=4 type="text" value="0"/>
			<input type="button" value="중복값 체크" onclick="checkValueDup()" />
			<br>
			중복된 값이 있는 행(ColValueDup) : 
			<input id="dupRow" size=4 type="text" readonly/>
			<br>
			중복된 값이 있는 행들(ColValueDupRows) : 
			<input id="dupRows" size="50" type="text" readonly/>
			</span>
		</div>
	</div>
	
	<div id="viewArea">
	</div>
</div>
</body>
</html>